package com.bird.thread.base.stopthread;

/**
 * @author sijunqiang
 * @data 2021/6/26 17:34
 * @description: 错误的停止线程的方法：使用stop()来停止线程
 * 会导致线程运行一半突然停止,没办法完成一个基本单位的操作(一个联队),会造成脏数据(有的联队多领取有的少领取了)
 */
public class StopThread implements Runnable {


    @Override
    public void run() {
        // 模拟发放武器,一个5个连队每个连队10人 以连队为单位 发放武器弹药,叫到号的士兵前去领取。
        for (int i = 0; i < 5; i++) {
            System.out.println("连队" + i + "开始领取武器!");

            for (int j = 0; j < 10; j++) {
                System.out.println(j);
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("连队" + i + "已经领取完毕!");
        }
    }

    public static void main(String[] args) throws InterruptedException {
        Thread thread=new Thread(new StopThread());
        thread.start();
        Thread.sleep(1000);
       thread.stop();
       // 总结：使用thread.stop()进行停止线程 会造成脏数据。

    }
}
